1. Field of the Invention.
The invention relates in general to computer systems, and more particularly, to an enhanced two-phase commit protocol for distributed data processing environments.
2. Description of Related Art.
In distributed data processing environments, two-phase commit protocols are used to coordinate transactions against one or more data sources. Transactions must be coordinated with other data sources in the network or system to ensure that the data sources have current information.
These data sources may include multiple databases distributed at several locations. In one embodiment of a two-phase commit protocol, the system first checks to see if all data sources are available, and, if so, proceeds to complete the transaction. However, if one or more of the data sources are unavailable or unable to complete the transaction, the transaction is canceled or xe2x80x9cundonexe2x80x9d until the data source (also known as a participant) is able to complete the transaction, or is queued until all participants are available to complete the transaction. The two-phase commit protocol is necessary for data environments that require high degrees of accuracy across large numbers of distributed computing systems, e.g., banking systems, credit card verification systems, databases for vital statistics, etc.
Although the two-phase commit protocol is useful to ensure data integrity, the limitation of requiring all participants to be able to process the transaction makes the two-phase commit protocol""s usefulness limited. Further, since there are many times that a data source or other participant may be unable to accept or process the transaction due to hardware or software malfunctions, preventative maintenance, system reconfigurations, etc., the two-phase commit protocol has even less usefulness.
It can be seen, then, that there is a need in the art for a two-phase commit protocol that can be used when one or more participants are unable to process the transaction. It can also be seen, then, that there is a need in the art for a two-phase commit protocol that will allow those participants unable to participate in the initial database update to be updated once the participant is again able to participate in the transaction process.
To overcome the limitations in the prior art described above, and to overcome other limitations that will become apparent upon reading and understanding the present specification, the present invention discloses a method, apparatus, and article of manufacture for performing a two-phase commit protocol for a transaction in a system having a plurality of data sources. An availability status is verified for all of the data sources, and the two-phase commit protocol for the transaction is completed (committed) for those data sources that are available, while the transaction is logged for data sources that are unavailable. The approach used in the present invention allows for a wider application of the two-phase commit protocol for networks that require the accuracy and precision that the two-phase commit protocol delivers.
These and various other advantages and features of novelty which characterize the invention are pointed out with particularity in the claims annexed hereto and form a part hereof. However, for a better understanding of the invention, its advantages, and the objects obtained by its use, reference should be made to the drawings which form a further part hereof, and to the accompanying detailed description, in which there is illustrated and described specific examples of a method, apparatus, and article of manufacture in accordance with the invention.